package daily.play1;

import javax.tools.JavaFileManager;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.security.cert.CollectionCertStoreParameters;
import java.util.*;
import java.util.function.Function;
import java.util.function.IntFunction;
import java.util.stream.Stream;

//public class demo11 {
//    public static void main(String[] args){
//
//        Integer [] arr = {5 ,6,8,2,4,9};
//        Arrays.sort(arr);
//        Arrays.sort(arr, new Comparator<Integer>() {
//            @Override
//            public int compare(Integer o1, Integer o2) {
//                return o2-o1;
//            }
//        });
//        Arrays.sort(arr,(o1,o2)->o2-o1);
//        Arrays.sort(arr,demo11::substation);
//        System.out.println(Arrays.toString(arr));
//    }
//
//    public static int substation(int o1,int o2){
//        return o2-o1;
//    }
//}

//public class demo11{
//    public static void main(String[] args){
//        ArrayList<String> list = new ArrayList<>();
//        Collections.addAll(list,"aaa","bbb","ccc");
//        Collections.addAll(list,"1","2","3","4","5","6","7","8","9");
//        list.stream().map(new Function<String, Integer>() {
//            @Override
//            public Integer apply(String s) {
//                int i = Integer.parseInt(s);
//                return i;
//            }
//        }).forEach(s-> System.out.println(s));

//        list.stream().map(s->Integer.parseInt(s)).forEach(s-> System.out.println(s));

//        list.stream().map(Integer::parseInt).forEach(s-> System.out.println(s));
//          list.stream().map(String::toUpperCase).forEach(s-> System.out.println(s));
//        String[] array1 = list.stream().toArray(new IntFunction<String[]>() {
//            @Override
//            public String[] apply(int value) {
//                return new String[value];
//            }
//        });
//        String[] array = list.stream().toArray(String[]::new);
//    }
//}

//class Student{
//    String name;
//    int age;
//    public Student(String str){
//        name = str.split(",")[0];
//        age = Integer.parseInt(str.split(",")[1]);
//    }
//    public String toString(){
//        return "name:"+name+",age:"+age;
//    }
//
//    public String getName() {
//        return name;
//    }
//}

//public class demo11{
//    public static void main(String[] args){
//        ArrayList<Student> list = new ArrayList<>();
//        Collections.addAll(list,"张三,23","李四,24","王五,25");
////        Student[] array = list.stream().map(Student::new).toArray(Student[]::new);
////        System.out.println(Arrays.toString(array));
//        list.stream().map(new Student())
//    }
//}

//public class demo11 {
//    public static void main(String[] args) throws IOException {
//        File file = new File("D:\\java-code\\daily-java\\src\\daily\\play1\\test1.txt");
//        System.out.println("文件是否存在");
//        System.out.println(file.exists());
//
//        System.out.println(file.isFile());
//
//        System.out.println(file.isDirectory());
//        System.out.println(file.length());
/*        File file = new File("D:\\下载应用\\小组件\\Notepad++\\txt\\aaa.txt");
        System.out.println(file.createNewFile());
        file.delete();*/
//        File file = new File("D:/aaa/bbb");
//        System.out.println(file);
//        file.delete();
//        System.out.println(file.mkdirs());
//        System.out.println(file.mkdirs());
//        File[] fi = file.listFiles();
//        for (File f : fi) {
//            System.out.println(f);
//        }
//        File file = new File("D:\\java-code\\daily-java\\aaa\\a.txt");
//        System.out.println(file.createNewFile());
//        File file = new File("D:\\下载应用");
//        File[] fils = file.listFiles();
//        for (File f : fils) {
//            System.out.println(f);
//        }
//    }
//}

//public class demo11{
//    public static void main(String[] args){
//        File file = new File("D:\\下载应用");
//        System.out.println(haveFile(file));
//    }
//    public static boolean haveFile(File f){
//        File[] filess = f.listFiles();
//        for(File files:filess){
//            if(files.isFile()&&files.getName().endsWith(".java")){
//                return true;
//            }
//        }
//        return false;
//    }
//}

//打印电脑中对应文件格式文件的路径
//public class demo11{
//    public static void main(String[] args){
//        File file = new File("D:/");
////        System.out.println(file.isFile());
//        havaMp4(file);
//    }
//    public static void haveMp4(){
//        File[] arr = File.listRoots();
//        for(File f:arr){
//            havaMp4(f);
//        }
//    }
//    public static void havaMp4(File file){
//
//            File[] files = file.listFiles();
//            if(files!=null){
//                for(File f:files){
//                    if(f.isFile()){
//                        if(f.getName().endsWith(".java"))
//                            System.out.println(f);
//                    }
//
//                    else {
//                        havaMp4(f);
//                    }
//                }
//
//            }
//    }
//}

//删除文件夹
//public class demo11{
//    public static void main(String[] args){
//        File file = new File("D:\\aaa");
//        delete(file);
//    }
//    public static void delete(File file){
//        File[] files = file.listFiles();
//        //如果文件夹进入文件夹
//        if(file.isDirectory()){
//            //遍历
//            for(File f : files){
//                //如果是文件
//                if(f.isFile()){
//                    f.delete();
//                }
//                else{
//                    delete(f);
//                }
//            }
//        }
//        //如果是文件就删除
//        file.delete();
//    }
//}

//统计文件夹的大小
//public class demo11{
//    public static void main(String [] arga){
//        File file = new File("D:\\java-code");
//        System.out.println(havaLength(file));
//    }
//    public  static long havaLength(File file){
//        long sumLength = 0;
//        File[] files = file.listFiles();
//        //如果是文件
//        if(file.isFile()){
//            sumLength+=file.length();
//        }else{
//            if(files!=null){
//                for(File f:files){
//                    //如果是文件
//                    if(f.isFile()){
//                        sumLength+=f.length();
//                    }else{
//                        sumLength+=havaLength(f);
//                    }
//                }
//            }
//        }
//        return sumLength;
//    }
//}

//判断各类文件的个数
//public class demo11{
//    public static void main(String[] arga){
//        File file = new File("D:\\java-code");
//        HashMap<String, Integer> map = havaClass(file);
//        System.out.println(map);
//    }
//    public static HashMap<String,Integer> havaClass(File file){
//        HashMap<String,Integer> map = new HashMap<>();
//        File[] files = file.listFiles();
//        //如果是文件的话
//        if(file.isFile()){
//            String name = file.getName();
//            String[] splitlen = name.split("\\.");
//            if(splitlen.length>=2){
//                if(map.containsKey(splitlen[splitlen.length-1])){
//                    int count = map.get(splitlen[splitlen.length-1]);
//                    count++;
//                    map.put(splitlen[splitlen.length-1],count);
//                }
//                else{
//                    map.put(splitlen[splitlen.length-1],1);
//                }
//            }
//        }
//        //如果是文件夹
//        else{
//            //判断这个文件夹是否又权限进入
//            if(files!=null){
//                for(File f: files){
//                    //如果是文件的话
//                    if(f.isFile()){
//                        String name = f.getName();
//                        String[] splitlen = name.split("\\.");
//                        if(splitlen.length>=2){
//                            if(map.containsKey(splitlen[splitlen.length-1])){
//                                int count = map.get(splitlen[splitlen.length-1]);
//                                count++;
//                                map.put(splitlen[splitlen.length-1],count);
//                            }
//                            else{
//                                map.put(splitlen[splitlen.length-1],1);
//                            }
//                        }
//                    }
//                    else{
//                        HashMap<String,Integer> flagmap = havaClass(f);
//                        Set<Map.Entry<String,Integer>> set = flagmap.entrySet();
//                        for(Map.Entry<String,Integer> s: set){
//                            String key = s.getKey();
//                            if(map.containsKey(key)){
//                                int value = s.getValue();
//                                int integer = map.get(key);
//                                map.put(key,value+integer);
//                            }
//                            else{
//                                map.put(s.getKey(),s.getValue());
//                            }
//                        }
//                    }
//                }
//            }
//        }
//        return map;
//    }
//}
